Add bulk page operations (move, copy, delete) with multi-select UI#338
Add bulk page operations (move, copy, delete) with multi-select UI#3382witstudios merged 4 commits intomasterfrom
Conversation
…drives - Add useMultiSelectStore for tracking selection state and mode - Update PageTreeItem with checkbox UI when in multi-select mode - Add context menu options: "Select multiple", "Move to...", "Copy to..." - Create MovePageDialog for moving pages to another drive with folder picker - Create CopyPageDialog for copying pages with optional child pages - Create MultiSelectToolbar showing selected count with bulk action buttons - Add API endpoints: - POST /api/pages/tree - fetch page tree for drive selection - POST /api/pages/bulk-move - move multiple pages across drives - POST /api/pages/bulk-copy - copy pages with recursive children - DELETE /api/pages/bulk-delete - bulk trash pages https://claude.ai/code/session_01CEWo9vztg3kJy4amDGUagP
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f24728b032
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
- Fix NULL parent lookup for root-level operations (use isNull instead of empty string) - Fix role check to use valid MemberRole values (OWNER|ADMIN instead of EDITOR) - Fix agent cache invalidation to check AI_CHAT pages in trashed children - Fix TypeScript errors in dialog components (use fetchWithAuth for Response) - Simplify websocket event payloads to match PageEventPayload interface Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…-cross-drive-4THr8
Summary
This PR adds comprehensive bulk page operations to PageSpace, enabling users to efficiently manage multiple pages at once. It includes three new API endpoints for bulk operations and a multi-select UI with a toolbar for executing these operations.
Key Changes
API Endpoints
POST /api/pages/bulk-copy- Copy multiple pages to a target drive/folder with optional recursive child copyingPOST /api/pages/bulk-move- Move multiple pages across drives with circular reference validation and recursive drive ID updates for childrenDELETE /api/pages/bulk-delete- Trash multiple pages with options to recursively trash or orphan childrenPOST /api/pages/tree- Fetch the page tree structure for a drive (used by dialogs for destination selection)UI Components
MultiSelectToolbar- Sticky toolbar that appears when pages are selected, providing quick access to move, copy, and delete actionsMovePageDialog- Modal for selecting destination drive and folder when moving pagesCopyPageDialog- Modal for selecting destination drive and folder when copying pages, with option to include child pagesPageTreecomponent to integrate the multi-select toolbarImplementation Details
Technical Notes
canUserViewPage,canUserEditPage,canUserDeletePage)pageTreeCache,agentAwarenessCache)https://claude.ai/code/session_01CEWo9vztg3kJy4amDGUagP